<template>
  <div class="login-container">
    <el-form ref="thirdAPForm" class="login-form" autocomplete="on" label-position="left">

      <div class="title-container">
        <h3 class="title">第三方登录跳转中......</h3>
      </div>

    </el-form>
  </div>
</template>

<script>
// api
import { setToken } from '@/utils/auth'
import { thirdAP } from '@/api/third/thirdAP.js'

export default {
  name: 'ThirdAP',
  data() {
    return {
      appKey: '',
      auth: '',
      route: ''
    }
  },
  created() {
    // window.addEventListener('storage', this.afterQRScan)
    this.getThirdAPInfo()
  },
  destroyed() {
    // window.removeEventListener('storage', this.afterQRScan)
  },
  methods: {
    getThirdAPInfo() {
      const curVue = this
      const params = {}
      const search = window.location.search
      if (search !== '') {
        const group = search.match(/(['appKey','auth','route']*=([^&]*))/g)
        for (const item of group) {
          const array = item.split('=')
          params[array[0]] = array[1]
        }
        if (params['appKey'] !== '' && params['auth'] !== '' && params['route'] !== '') {
          curVue.appKey = params['appKey']
          const authStr = params['auth']
          const authUrlStr = decodeURIComponent(authStr)
          curVue.auth = authUrlStr
          const routeStr = params['route']
          const routeUrlStr = decodeURIComponent(routeStr)
          curVue.route = routeUrlStr
          console.log('appKey:' + curVue.appKey)
          console.log('auth:' + curVue.auth)
          console.log('route:' + curVue.route)
          this.thirdAP()
        } else {
          curVue.noticeUtil.warningMsg('参数错误！')
          curVue.$router.push(`/login`)
        }
      } else {
        curVue.noticeUtil.warningMsg('参数错误！')
        curVue.$router.push(`/login`)
      }
    },
    thirdAP() {
      const curVue = this
      const params = {
        appkey: curVue.appKey,
        auth: curVue.auth
      }
      return new Promise((resolve, reject) => {
        thirdAP(params).then(response => {
          if (response.code === 1) {
            this.$store.commit('user/SET_TOKEN', response.data)
            setToken(response.data)
            resolve()
            setTimeout(() => {
              // this.$router.push(curVue.route)
              window.location.href = curVue.route
            }, 100)
          } else {
            curVue.noticeUtil.errorMsg(response.mesg)
          }
        }).catch(error => {
          reject(error)
        })
      })
      // thirdAP(params).then(res => {
      //   if (res.code === 1) {
      //     setToken(res.data)
      //     setTimeout(function() {
      //       curVue.$router.push(curVue.route)
      //     }, 5000)
      //   } else {
      //     curVue.noticeUtil.warningMsg('系统错误，请联系管理员！')
      //   }
      // })
    }
  }
}
</script>

<style lang="scss">
/* 修复input 背景不协调 和光标变色 */
/* Detail see https://github.com/PanJiaChen/vue-element-admin/pull/927 */

$bg:#283443;
$light_gray:#fff;
$cursor: #fff;

@supports (-webkit-mask: none) and (not (cater-color: $cursor)) {
  .login-container .el-input input {
    color: $cursor;
  }
}

/* reset element-ui css */
.login-container {
  .el-input {
    display: inline-block;
    height: 47px;
    width: 85%;

    input {
      background: transparent;
      border: 0px;
      -webkit-appearance: none;
      border-radius: 0px;
      padding: 12px 5px 12px 15px;
      color: $light_gray;
      height: 47px;
      caret-color: $cursor;

      &:-webkit-autofill {
        box-shadow: 0 0 0px 1000px $bg inset !important;
        -webkit-text-fill-color: $cursor !important;
      }
    }
  }

  .el-form-item {
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(0, 0, 0, 0.1);
    border-radius: 5px;
    color: #454545;
  }
}
</style>

<style lang="scss" scoped>
$bg:#2d3a4b;
$dark_gray:#889aa4;
$light_gray:#eee;

.login-container {
  min-height: 100%;
  width: 100%;
  background-color: $bg;
  overflow: hidden;

  .login-form {
    position: relative;
    width: 520px;
    max-width: 100%;
    padding: 160px 35px 0;
    margin: 0 auto;
    overflow: hidden;
  }

  .tips {
    font-size: 14px;
    color: #fff;
    margin-bottom: 10px;

    span {
      &:first-of-type {
        margin-right: 16px;
      }
    }
  }

  .svg-container {
    padding: 6px 5px 6px 15px;
    color: $dark_gray;
    vertical-align: middle;
    width: 30px;
    display: inline-block;
  }

  .title-container {
    position: relative;

    .title {
      font-size: 26px;
      color: $light_gray;
      margin: 0px auto 40px auto;
      text-align: center;
      font-weight: bold;
    }
  }

  .show-pwd {
    position: absolute;
    right: 10px;
    top: 7px;
    font-size: 16px;
    color: $dark_gray;
    cursor: pointer;
    user-select: none;
  }

  .thirdparty-button {
    position: absolute;
    right: 0;
    bottom: 6px;
  }

  @media only screen and (max-width: 470px) {
    .thirdparty-button {
      display: none;
    }
  }
}
.logo{
  position: absolute;
  top: 50px;
  left: 75px;
  color: #eee;
  font-size: 20px;

}
.logo img{
  display: inline-block;
  height: 30px;
  margin-right: 10px;
  vertical-align: top;
}
.logo span{
  display: inline-block;
  vertical-align: top;
  line-height: 30px;
}
</style>
